
package com.bstek.urule.model.rule;

import com.bstek.urule.RuleException;
import com.bstek.urule.model.library.Datatype;
import org.codehaus.jackson.annotate.JsonIgnore;

/**
 * @author Jacky.gao
 * @since 2014年12月31日
 */
public class Parameter {
    @JsonIgnore
    private String id;
    private String name;
    private Datatype type;
    private Value value;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Datatype getType() {
        return type;
    }

    public void setType(Datatype type) {
        this.type = type;
    }

    public Value getValue() {
        return value;
    }

    public void setValue(Value value) {
        this.value = value;
    }

    public String getId() {
        if (id == null) {
            if (value == null) {
                throw new RuleException("Parameter [" + name + "] not assignment value.");
            }
            id = value.getId();
        }
        return id;
    }
}
